package cn.kattomy.shop.user.service;

import java.util.List;

import cn.kattomy.shop.user.vo.User;

public interface UserService {

	/**
	 * 根据'用户名'查询用户是否已经在数据库中存在
	 * @param username
	 * @return boolean类型,若已经存在则返回true,不存在则返回false
	 */
	public boolean validateUsername(String username);
	
	/**
	 * 根据'邮箱'查询用户是否已经在数据库中存在
	 * @param username
	 * @return boolean类型,若已经存在则返回true,不存在则返回false
	 */
	public boolean validateEmail(String email);
	
	public String test();

	/**
	 * 把传入的 User 对象保存到数据库中并生成随机的 激活码
	 * @param user
	 */
	public void save(User user);
	
	/**
	 * 根据'激活码'激活用户
	 * @param code
	 * @return boolean类型,若用户成功激活则返回true,用户已经激活、激活不成功 或 用户不存在则返回false
	 */
	public boolean activateUser(String code);

	/**
	 * 用户登录的方法,传入一个不完全的 User 对象,并尝试登录             
	 * <br/>
	 * 登录失败的可能性有以下几种：
	 * <br/>
	 * 1.该用户尚未注册
	 * <br/>
	 * 2.该用户尚未激活
	 * <br/>
	 * 3.该用户的用户名与密码不匹配
	 * @param user
	 * @return User 对象,若登录成功则返回 User对象完全体,登录失败则返回 null
	 */
	public User login(User user);

	/**
	 * 查询所有用户
	 * @return 所有用户所组成的 list 集合
	 */
	public List<User> findAll();
}
